package lesbonsamis

class ProjetController {

    static allowedMethods = [ajouter:'POST', sauver:'POST']

	def index = {
		 if (params.projetCle) {
			try {
				Projet projet = Projet.findByCle(params.projetCle)
				session.projetId = projet.id
				redirect(controller:'transaction', action:'liste')	
			} catch(Exception e) {
				def message = "Hmmm... Le projet est introuvable. Il a surement été supprimé."
				render(view:"accueil", model:['message':message])
			}
		} else if (session.projetId) {
			redirect('action':editer)
		} else {
			redirect('action':accueil)
		}
	}
	
	def accueil = {
		render(view:"accueil")
	}
	
	def creer = {
		def projet = new Projet()
		Participant responsable = new Participant()
		
		projet.nom = params.nomProjet		
		responsable.nom = params.nom
		responsable.email = params.email
		
		render(view:"creer", model:['projet':projet, 'responsable':responsable])
	}

	def ajouter = {		
		Participant responsable = new Participant()
		responsable.nom = params.nom
		responsable.email = params.email
		responsable.estResponsable = true
				
		Projet projet = new Projet()
		projet.nom = params.nomProjet
		projet.responsable = responsable
		
		projet.addToParticipants(responsable).save(flush: true)

		session.projetId = projet.id
		redirect(controller:"participant", action:"liste")
	}
	
	def editer = {
		Projet projet = Projet.get(session.projetId)
		Participant responsable = projet.responsable
		
		render(view:"editer", model:['projet':projet, 'responsable':responsable])
	}
	
	def sauver = {
		Projet projet = Projet.get(session.projetId)
		Participant responsable = projet.responsable
		
		projet.nom = params.nomProjet		
		responsable.nom = params.nom
		responsable.email = params.email
		
		responsable.save(flush: true)
		projet.save(flush: true)
		
		redirect(controller:'participant', action:'liste')	
	}
	
	def supprimer = {
		Projet projet = Projet.get(session.projetId)
		projet.delete()
		
		session.projetId = null
		redirect('action':accueil)
	}
}
